home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / XIRCOM / CE2 / OEMSETUP.INF < prev   
Encoding:
INI File  |  1996-07-31  |  53.5 KB  |  1,707 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMSETUP.INF
  4. ;
  5. ;       Xircom CE-IIps Network Adapter Setup
  6. ;
  7. ; History:
  8. ;    Adapted by Richard E. Moore
  9. ;   Feb 29 1996  Rev 1.35   Updated for NT 4.0
  10. ;****************************************************************************************************
  11.  
  12. [Identification]
  13.     OptionType = NetAdapter
  14.  
  15. [PlatformsSupported]
  16.     ISA
  17.     EISA
  18.     MCA
  19.  
  20. [Options]
  21.     CE2XPS
  22.  
  23. [OptionsTextENG]
  24.     CE2XPS    = "Xircom CreditCard Ethernet IIps"
  25.  
  26. [AllFileConstants]
  27. GenericInfVersion  = " v1.35"
  28. ;  File names, etc. ----------------------------------------
  29. UtilityInf      = "UTILITY.INF"
  30. ParamInf        = "NCPARAM.INF"
  31. subroutineinf   = "SUBROUTN.INF"
  32. SoftwareType    = "driver"
  33. Exit_Code       = 0
  34. ; EventLog Message File     ----------------------------------------
  35. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  36. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  37. ; Product Info ----------------------------------------
  38. Manufacturer    = "Xircom"
  39. ; Flow control variables  ----------------------------------------
  40. RUNDLLCODE        = 1
  41. HOTPROGRAMPCMCIA = ""
  42.  
  43.  
  44.  
  45. [FileConstants-CE2XPS]
  46. GenericAdapterName = "Xircom CreditCard Ethernet IIps"
  47. GenericDriverName  = "Xircom CreditCard Ethernet IIps (CE2XPS Driver)"
  48. GenericSysName     = "CE2XPS.sys"
  49. GenericName        = "CE2XPS"
  50. ; Product Info ----------------------------------------
  51. ProductMajorVersion     = "3"
  52. ProductMinorVersion     = "12"
  53. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  54. ; Software  ----------------------------------------
  55. ProductSoftwareName     = "CE2XPS"
  56. ProductSoftwareDescription = "Xircom CreditCard Ethernet IIps (CE2XPS Driver)"
  57. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  58. NetRuleSoftwareType     = "ce2xpsSys ndisDriver ce2xpsDriver"
  59. NetRuleSoftwareUse      = $(SoftwareType)
  60. NetRuleSoftwareBindForm = """ce2xpsSys"" yes no container"
  61. NetRuleSoftwareClass    = {"ce2xpsDriver basic"}
  62. NetRuleSoftwareBindable = {"ce2xpsDriver ce2xpsAdapter non exclusive 100"}
  63. ; Hardware  ----------------------------------------
  64. ProductHardwareName        = "CE2XPS"
  65. ProductHardwareDescription = "Xircom CreditCard Ethernet IIps (CE2XPS Driver)"
  66. NetRuleHardwareType        = "ce2xps ce2xpsAdapter"
  67. NetRuleHardwareBindForm    = " yes yes container"
  68. NetRuleHardwareClass       = {"ce2xpsAdapter basic"}
  69. ; Registry Key  ----------------------------------------
  70. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  71. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  72. ; Tuple Information -----------------------------------
  73. VERS1Manufacturer = "Xircom"
  74. VERS1Product      = "CreditCard 10Base-T"
  75. VERS1Type          = "PS-CE2"
  76. PCMCIA              = 1
  77.  
  78.  
  79.  
  80.  
  81. [GeneralConstants]
  82. ;  Program flow control variables.
  83. from      = ""
  84. to        = ""
  85. ;  Return codes; Exit_Code is set to one of these
  86. ExitCodeOk     = 0
  87. ExitCodeCancel = 1
  88. ExitCodeFatal  = 2
  89. KeyNull         = ""
  90. MAXIMUM_ALLOWED   = 33554432
  91. RegistryErrorIndex = NO_ERROR
  92. KeyProduct      = ""
  93. KeyParameters   = ""
  94. TRUE            = 1
  95. FALSE           = 0
  96. NoTitle            = 0
  97. ExitState   = "Active"
  98. OldVersionExisted = $(FALSE)
  99. DriverPath      = $(!STF_NTPATH)\drivers
  100.  
  101.  
  102.  
  103.  
  104. [date]
  105.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  106.     ; Minute, Second }
  107.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  108.  
  109.  
  110. ;---------------------------------------------------------------------------
  111. ; 1. Identify
  112. ;
  113. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  114. ;                as we are choosing currently.
  115. ;
  116. ; INPUT:         None
  117. ;
  118. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  119. ;                $($R1): Option Type (COMPUTER ...)
  120. ;                $($R2): Diskette description
  121. ;---------------------------------------------------------------------------
  122.  
  123. [Identify]
  124.     ;
  125.     ;
  126.     read-syms Identification
  127.  
  128.     set Status     = STATUS_SUCCESSFUL
  129.     set Identifier = $(OptionType)
  130.     set Media      = #("Source Media Descriptions", 1, 1)
  131.  
  132.     Return $(Status) $(Identifier) $(Media)
  133.  
  134. ;------------------------------------------------------------------------
  135. ; 2. ReturnOptions:
  136. ;
  137. ; DESCRIPTION:   To return the option list supported by this INF and the
  138. ;                localised text list representing the options.
  139. ;
  140. ;
  141. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  142. ;
  143. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  144. ;                                STATUS_NOLANGUAGE
  145. ;                                STATUS_FAILED
  146. ;                                STATUS_NOTSUPPORTED
  147. ;
  148. ;                $($R1): Option List
  149. ;                $($R2): Option Text List
  150. ;------------------------------------------------------------------------
  151.  
  152. [ReturnOptions]
  153.     ;
  154.     ;
  155.     set Status        = STATUS_FAILED
  156.     set OptionList     = {}
  157.     set OptionTextList = {}
  158.  
  159.     ;
  160.     ; Check if the language requested is supported
  161.     ;
  162.     set LanguageList = ^(LanguagesSupported, 1)
  163.     Ifcontains(i) $($0) in $(LanguageList)
  164.         ;
  165.         ; Check if the platforms requested is supported
  166.         ;
  167.         ifstr(i) $($1) == ""
  168.                         goto returnoptions
  169.         endif
  170.  
  171.         set PlatformList = ^(PlatformsSupported, 1)
  172.         Ifcontains(i) $($1) in $(PlatformList)
  173.                         goto returnoptions
  174.         else
  175.                         set Status = STATUS_NOTSUPPORTED
  176.                         goto finish_ReturnOptions
  177.         endif
  178.     else
  179.                 set Status = STATUS_NOLANGUAGE
  180.                 goto finish_ReturnOptions
  181.     endif
  182.  
  183.     ;
  184.     ; form a list of all the options and another of the text representing
  185.     ;
  186.  
  187. returnoptions = +
  188.     set OptionList     = ^(Options, 1)
  189.     set OptionTextList = ^(OptionsText$($0), 1)
  190.     set Status         = STATUS_SUCCESSFUL
  191.  
  192. finish_ReturnOptions = +
  193.     Return $(Status) $(OptionList) $(OptionTextList)
  194.  
  195. ;------------------------------------------------------------------------
  196. ;
  197. ; InstallOption:
  198. ;
  199. ;      This section is shelled to by main installation processing
  200. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  201. ;
  202. ;
  203. ; FUNCTION:  To copy files representing Options
  204. ;            To configure the installed option
  205. ;            To update the registry for the installed option
  206. ;
  207. ; INPUT:     $($0):  Language to use
  208. ;            $($1):  OptionID to install
  209. ;            $($2):  SourceDirectory
  210. ;            $($3):  AddCopy  (YES | NO)
  211. ;            $($4):  DoCopy   (YES | NO)
  212. ;            $($5):  DoConfig (YES | NO)
  213. ;
  214. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  215. ;                            STATUS_NOLANGUAGE |
  216. ;                            STATUS_USERCANCEL |
  217. ;                            STATUS_FAILED
  218. ;
  219. ;------------------------------------------------------------------------
  220. [InstallOption]
  221.     ;
  222.     ; Set default values for
  223.     ;
  224.     set Status   = STATUS_FAILED
  225.     ;
  226.     ; extract parameters
  227.     ;
  228.     set Option   = $($1)
  229.     set SrcDir   = $($2)
  230.     set AddCopy  = $($3)
  231.     set DoCopy   = $($4)
  232.     set DoConfig = $($5)
  233.  
  234.     Set !DebugOutputControl = 1
  235.  
  236.     ;
  237.     ; Check if the language requested is supported
  238.     ;
  239.     set LanguageList = ^(LanguagesSupported, 1)
  240.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  241.         Return STATUS_NOLANGUAGE
  242.     endif
  243.  
  244.     set-subst LF = "\n"
  245.  
  246.     read-syms GeneralConstants
  247.     read-syms AllFileConstants
  248.     read-syms FileConstants"-"$(Option)
  249.     read-syms DialogConstants$(!STF_LANGUAGE)"-"$(Option)
  250.     ifstr(i) $(!NTN_Origination) == "NCPA"
  251.         set Continue = $(OK)
  252.     endif
  253.  
  254.     read-syms AllFileConstants$(!STF_LANGUAGE)
  255.     read-syms FileConstants$(!STF_LANGUAGE)"-"$(Option)
  256.  
  257.     detect date
  258.  
  259.     set-title  $(FunctionTitle)
  260.  
  261.     set to   = Begin
  262.     set from = Begin
  263. ;
  264. ;  Assume all is well.
  265. ;
  266.     set CommonStatus = STATUS_SUCCESSFUL
  267.  
  268.     EndWait
  269.  
  270. ;
  271. ;   Set up the operation-mode-based variables and gaily welcome
  272. ;   the user.  If the "install mode" variable is improperly set,
  273. ;   assume this is a new installation.
  274. ;
  275.  
  276. Begin = +
  277.     Set ActivateDetection = FALSE
  278.  
  279.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  280.         set StartLabel = removeadapter
  281.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  282.         set StartLabel = UpgradeSoftware
  283.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  284.         set StartLabel = bindingadapter
  285.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  286. ;        set ActivateDetection = TRUE
  287.         set StartLabel = configureadapter
  288.         ;
  289.         ;   You cannot config the software component
  290.         ;
  291.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  292.             ;Debug-Output "Cannot configure the software."
  293.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  294.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  295.                 Debug-Output "ShellCode error: cannot get an error string."
  296.                 goto ShellCodeError
  297.             endif
  298.             set Error = $($R0)
  299.             set from = end
  300.             set to = end
  301.             goto nonfatalinfo
  302.         endif
  303.     else
  304. ;        set ActivateDetection = TRUE
  305.         set StartLabel = installadapter
  306.         set OEM_ABANDON_OPTIONS = {}
  307.         set OEM_ABANDON_SOFTWARE = FALSE
  308.         set OEM_ABANDON_ON = TRUE
  309.     endif
  310.  
  311.  
  312.     ;  set the [Default values]
  313.  
  314.     set IRQValue                    = *($(IRQList), 3)                       ; IRQ Level      = 10
  315.     set IOBaseAddrValue             = *($(IOBaseAddrList), 16)             ; IOBase Address = 0x300
  316.     set MemoryAddrValue             = *($(MemoryAddrList), 53)             ; Memory Address =    0xD0000
  317.     set CableTypeValue                 = *($(CableTypeList), 1)             ; Cable Type = Auto Detect
  318.     set FullDuplexValue             = "OFF"                                                         ; Full Duplex = off
  319.     set LinkIntegrityValue          = "ON"                                                          ; Link Integrity = Enabled
  320.     set EarlyTransmitValue          = "OFF"                                                          ; Early Transmit = on
  321.     set ModeValue                   = *($(ModeList), 2)                     ; Mode = I/O
  322.     ;set NetworkAddressValue            = "99 99 99 99 99 99"
  323.                                                              
  324.  
  325.     Set from = $(fatal)
  326.     Set to = $(fatal)
  327.     Goto $(StartLabel)
  328.  
  329. ;-----------------------------------------------
  330. ; Installation Section
  331. ;-----------------------------------------------
  332.  
  333. installadapter = +
  334. ;
  335. ;   First, check whether the same version of the software exists
  336. ;
  337.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  338.  
  339.     Ifstr $(KeyProduct) != $(KeyNull)
  340.         ;
  341.         ; Same version already existed in the local machine
  342.         ; Popup the dialog and ask the user whether he wants to continue
  343.         ;
  344.         CloseRegKey $(KeyProduct)
  345.  
  346.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  347.            ;
  348.            ; Cannot Install the same software again
  349.            ;
  350.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  351.                $(ProductVersion)
  352.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  353.                Debug-Output "ShellCode error: cannot get an error string."
  354.                goto ShellCodeError
  355.            endif
  356.  
  357.            goto end
  358.         else
  359.            ;
  360.            ; Add a new adapter card?
  361.            ;
  362.            Shell $(UtilityInf), CardExistedDlg
  363.  
  364.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  365.                Debug-Output "ShellCode error: cannot get an error string."
  366.                goto ShellCodeError
  367.            endif
  368.  
  369.            ifstr(i) $($R1) != "OK"
  370.                goto end
  371.            endif
  372.            set OldVersionExisted = $(TRUE)
  373.         endif
  374.     endif
  375.  
  376. ;
  377. ;  dll load addition
  378. ;
  379.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  380.  
  381.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  382.         Goto ShellCodeError
  383.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  384.         Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  385.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  386.             goto ShellCodeError
  387.         endif
  388.         set Error = $($R0)
  389.         Goto fatal
  390.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  391.         Goto successful
  392.     Endif
  393.  
  394.     Set SrcDir = $($R1)
  395.  
  396.     install "Install-Dll"
  397.  
  398.     goto adaptersetup
  399.  
  400. ;-----------------------------------------------
  401. ; Configuration Section
  402. ;-----------------------------------------------
  403. ;
  404. ;   Get the current values of all the parameters
  405. ;
  406. configureadapter = +
  407.     Ifstr $(KeyProduct) == $(KeyNull)
  408.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  409.         Ifstr $(KeyProduct) == $(KeyNull)
  410.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  411.             Debug-Output "Cannot find component product key"
  412.             goto fatalregistry
  413.         Endif
  414.     Endif
  415.  
  416.     ;
  417.     ; Get the other parameters;  they're attached to the service parameters key
  418.     ;
  419.     Debug-Output "INF: Shelling to FindService"
  420.     Shell $(UtilityInf) FindService, $(KeyProduct)
  421.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  422.         Debug-Output "INF: FindService shell failure"
  423.         Goto ShellCodeError
  424.     Endif
  425.     Ifstr(i) $($R0) != NO_ERROR
  426.         Debug-Output "INF: FindService Shell error: "$($R0)
  427.         Goto fatalregistry
  428.     endif
  429.  
  430.     Set KeyParameters = $($R2)
  431.  
  432.     ;
  433.     ;  We don't need the services key, so close it.
  434.     ;
  435.     CloseRegKey $($R1)
  436.  
  437.     Ifstr $(KeyParameters) == $(KeyNull)
  438.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  439.         Debug-Output "Cannot find component service"
  440.         goto fatalregistry
  441.     endif
  442.  
  443.     set OldVersionExisted = $(TRUE)
  444.  
  445.     set ValueName = ""
  446.     set ValueData = ""
  447.     set ValueStr  = ""
  448.     set ValueList = {}
  449.  
  450.     
  451.     ;
  452.     ; Get the old values from the Registry    [Get Values]
  453.     ; *********************************************************
  454.     EnumRegValue $(KeyParameters) ValueList
  455.     ForListDo $(ValueList)
  456.         set ValueItem = $($)
  457.         set ValueName = *($(ValueItem),1)
  458.         set ValueData = *($(ValueItem),4)
  459.         ifstr(i) $(ValueName) == "IoBaseAddress"
  460.             set IOBaseAddrIndex = $(ValueData)
  461.         else-ifstr(i) $(ValueName) == "InterruptNumber"
  462.             set IRQValueIndex = $(ValueData)
  463.         else-ifstr(i) $(ValueName) == "EarlyTransmit"
  464.             set EarlyTransmitValue = $(ValueData)
  465.         else-ifstr(i) $(ValueName) == "LinkIntegrity"
  466.             set LinkIntegrityValue = $(ValueData)
  467.         else-ifstr(i) $(ValueName) == "FullDuplex"
  468.             set FullDuplexValue = $(ValueData)
  469.         else-ifstr(i) $(ValueName) == "CableType"
  470.             set CableTypeIndex = $(ValueData)
  471.         else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
  472.             set MemoryAddrIndex = $(ValueData)
  473.         else-ifstr(i) $(ValueName) == "NetworkAddress"
  474.             set NetworkAddressValue = $(ValueData)
  475.         else-ifstr(i) $(ValueName) == "Mode"
  476.             set ModeIndex = $(ValueData)                ; mode value is base 0
  477.         endif
  478.     EndForListDo
  479.  
  480.     set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  481.     ifstr(i) $(IRQValue) == ""
  482.         set IRQValue = *($(IRQList), 2)
  483.     endif
  484.  
  485.     set MemoryAddrValue = *($(MemoryAddrList), ~($(MemoryAddrValues),$(MemoryAddrIndex)))
  486.     ifstr(i) $(MemoryAddrValue) == ""
  487.         set MemoryAddrValue = *($(MemoryAddrValues), 2)
  488.     endif
  489.  
  490.     set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  491.     ifstr(i) $(IOBaseAddrValue) == ""
  492.         set IOBaseAddrValue = *($(IOBaseAddrList), 1)
  493.     endif
  494.  
  495.     set ModeValue = *($(ModeList), ~($(ModeValues),$(ModeIndex)))
  496.     ifstr(i) $(ModeValue) == ""
  497.         set ModeValue = *($(ModeValues), 2)
  498.     endif
  499.  
  500.     set CableTypeValue = *($(CableTypeList), ~($(CableTypeValues),$(CableTypeIndex)))
  501.     ifstr(i) $(CableTypeValue) == ""
  502.         set CableTypeValue = *($(CableTypeValues), 2)
  503.     endif
  504.  
  505.  
  506.     ifstr(i) $(EarlyTransmitValue) == ""
  507.         set EarlyTransmitValue = 1
  508.     endif
  509.  
  510.     ifstr(i) $(LinkIntegrityValue) == ""
  511.         set LinkIntegrityValue = 1
  512.     endif
  513.  
  514.     ifstr(i) $(FullDuplexValue) == ""
  515.         set FullDuplexValue = 0
  516.     endif
  517.  
  518.     ifint $(EarlyTransmitValue) == 1
  519.         set EarlyTransmitValue = "ON"
  520.     else
  521.         set EarlyTransmitValue = "OFF"
  522.     endif
  523.  
  524.     ifint $(LinkIntegrityValue) == 1
  525.         set LinkIntegrityValue = "ON"
  526.     else
  527.         set LinkIntegrityValue = "OFF"
  528.     endif
  529.  
  530.     ifint $(FullDuplexValue) == 1
  531.         set FullDuplexValue = "ON"
  532.     else
  533.         set FullDuplexValue = "OFF"
  534.     endif
  535.  
  536.  
  537.     set CheckItemsIn = {$(EarlyTransmitStr),$(LinkIntegrityStr),$(FullDuplexStr)}
  538.     ;set CheckItemsIn = {"OFF", "ON", "OFF"}
  539.  
  540.  
  541.  
  542.     ;  Save the settings as they were read from the Registry.
  543.  
  544. ;    Shell $(ParamInf) Param_SaveValues
  545. ;    Set CurrParamSettings = $($R0)
  546. ;
  547. ;   Put up the adapter configuration dialog if necessary.
  548. ;
  549. ;   Note that $(CurrParamSettings) has the old known parameter values.
  550. ;
  551. adaptersetup = +
  552.  
  553.  
  554.     ;Shell "" DebugConfiguration "before displaying dialog"
  555.  
  556.     Set from = adapteroptions
  557.  
  558.  
  559. adapteroptions = +
  560.  
  561.     set CheckItemsIn = {$(EarlyTransmitStr),$(LinkIntegrityStr),$(FullDuplexStr)}
  562.  
  563.     LoadLibrary "disk 1" $(DialogDllName) hLib
  564.     read-syms FileDependentDlg$(!STF_LANGUAGE)"-"$(Option)
  565.     set ENABLER = 0
  566.  
  567.     ifint $(RUNDLLCODE) == 1
  568.         ifint $(PCMCIA) == 1
  569.             LibraryProcedure ENABLER, $(hLib), EnablerRunning         ; check for enabler type
  570.             ifint $(ENABLER) == 1
  571.                 set Static1Label = "Configuring driver for Microsoft Enabler"
  572.             else-ifint $(ENABLER) == 2
  573.                 set Static1Label = "Configuring driver for third party Card & Socket Services"
  574.             else
  575.                 set Static1Label = "Configuring driver for Xircom Enabler"
  576.             endif
  577.         endif
  578.     endif
  579.  
  580.  
  581.     ;------------------------------------------------------
  582.  
  583.     ; Call out to the PCMCIA driver only if we're loading a PCMCIA device
  584.     ifint $(RUNDLLCODE) == 1
  585.         ifint $(PCMCIA) == 1
  586.             ; DLLCODE
  587.             ; Locate the slot with the Xircom Card in it
  588.             ;------------------------------------------------------
  589.             LibraryProcedure CONFIG, $(hLib), GetPCMCIAConfig
  590.             set SLOTCOUNT = 8    ; was     *($(CONFIG),1), but returned 0
  591.             set CONTROLLERTYPE = *($(CONFIG),3)
  592.             ;Debug-Output "slot count="$(SLOTCOUNT)" controller type="$(CONTROLLERTYPE)
  593.             set SLOT = 0
  594.           slotloop = +
  595.             LibraryProcedure INFO, $(hLib), GetVERS_1Tuple $(SLOT)      ;VERS_1
  596.             ifstr(i) *($(INFO),3) == $(VERS1Manufacturer)
  597.                 ifstr(i) *($(INFO),4) == $(VERS1Product)
  598.                     goto slotfound
  599.                 endif
  600.             endif
  601.  
  602.             set-add SLOT = $(SLOT), 1
  603.             ifint $(SLOT) == $(SLOTCOUNT)
  604.                 goto slotnotfound
  605.             else
  606.                 goto slotloop
  607.             endif
  608.           slotfound = +
  609.             ;Debug-Output "Xircom card found in slot "$(SLOT)
  610.             ;set Static2Label = "CE-IIps in slot "$(SLOT)
  611.             LibraryProcedure INFO, $(hLib), GetFUNCETuple $(SLOT)      ;VERS_1
  612.             set    Static2Label = "Physical Address:"
  613.             set    Static3Label = $(INFO)
  614.             ifstr(i) $(NetworkAddressValue) != ""
  615.               set Static4Label = "Network Address:"
  616.               set Static5Label = $(NetworkAddressValue)
  617.             endif
  618.             set SLOTFOUND = 1
  619.             goto slotcontinue
  620.           slotnotfound = +
  621.             set SLOTFOUND = ""
  622.             ;set Static2Label = "CE-IIps was not found"
  623.             ;Debug-Output "Xircom card not found"
  624.           slotcontinue = +
  625.         endif
  626.     endif
  627.  
  628.  
  629.  
  630.     ;------------------------------------------------------
  631.  
  632.  
  633.     ui start "InputDlg"  $(hLib)
  634.  
  635.     set ExitButton      = $(ButtonPressed)
  636.     ;Debug-Output " ButtonPressed "$(ButtonPressed)
  637.     ;Debug-Output " DLGEVENT "$(DLGEVENT)
  638.     FreeLibrary $(hLib)
  639.  
  640.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  641.  
  642.         set IOBaseAddrIndex  = $(Combo1Out)
  643.         set MemoryAddrIndex  = $(Combo2Out)
  644.         set IRQValueIndex    = $(Combo3Out)
  645.          set ModeIndex         = $(Combo4Out)
  646.         set CableTypeIndex     = $(Combo5Out)
  647.         set EarlyTransmitValue =  *($(CheckItemsOut), 1)
  648.         set LinkIntegrityValue =  *($(CheckItemsOut), 2)
  649.         set FullDuplexValue    =  *($(CheckItemsOut), 3)
  650.         set ExitButton       = $(ButtonPressed)
  651.  
  652.         ui pop 1
  653.  
  654.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  655.         set CommonStatus = STATUS_USERCANCEL
  656.         ui pop 1
  657.         goto end
  658.     else
  659.         set CommonStatus = STATUS_USERCANCEL
  660.         ui pop 1
  661.         Debug-Output "Action: unknown. Bye."
  662.         goto end
  663.     endif
  664.  
  665.  
  666. ;
  667. ;   If installing, go create the necessary keys;
  668. ;   if configuring, they're already open.
  669. ;
  670. skipoptions =+
  671.  
  672.     ifint $(OldVersionExisted) == $(TRUE)
  673.         ifstr(i) $(!NTN_InstallMode) == configure
  674.             goto writeparameters
  675.         endif
  676.     endif
  677.     StartWait
  678.     ;
  679.     ; Add Software Component
  680.     ;
  681.     ifint $(OldVersionExisted) == $(FALSE)
  682.  
  683.         ifstr(i) $(!NTN_InstallMode) == "install"
  684.            Ifstr(i) $(DoCopy) == "YES"
  685.  
  686.               Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  687.  
  688.               Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  689.                   Goto ShellCodeError
  690.               Else-Ifstr(i) $($R0) == STATUS_FAILED
  691.                   Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  692.                   ifint $($ShellCode) != $(!SHELL_CODE_OK)
  693.                       goto ShellCodeError
  694.                   endif
  695.                   set Error = $($R0)
  696.                   Goto fatal
  697.               Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  698.                   Goto successful
  699.               Endif
  700.  
  701.               Set SrcDir = $($R1)
  702.  
  703.            Endif
  704.  
  705.            install "Install-Option"
  706.  
  707.            ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  708.               Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  709.               ifint $($ShellCode) != $(!SHELL_CODE_OK)
  710.                   goto ShellCodeError
  711.               endif
  712.               set Error = $($R0)
  713.               goto fatal
  714.            endif
  715.         endif
  716.  
  717.  
  718.  
  719.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  720.             $(ProductSoftwareName), +
  721.             $(ProductSoftwareName), +
  722.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  723.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  724.             $(NetEventDLL)
  725.  
  726.         Set OEM_ABANDON_SOFTWARE = TRUE
  727.  
  728.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  729.             Debug-Output "ShellCode error"
  730.             goto ShellCodeError
  731.         endif
  732.         ;
  733.         ;   At this point:
  734.         ;     $R1 contains the product version key handle;
  735.         ;     $R2 contains the NetRules subkey handle;
  736.         ;     $R3 contains the new Services key handle; and
  737.         ;     $R4 contains the Parameters key
  738.         ;     $R5 contains the Linkage Key
  739.         ;
  740.         set RegistryErrorIndex = $($R0)
  741.         set KeyProduct      = $($R1)
  742.         Set SoftNetRulesKey = $($R2)
  743.         CloseRegKey $($R3)
  744.         CloseRegKey $($R4)
  745.         CloseRegKey $($R5)
  746.  
  747.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  748.             EndWait
  749.             Debug-Output "Registry error: add software components"
  750.             CloseRegKey $(KeyProduct)
  751.             CloseRegKey $(SoftNetRulesKey)
  752.             goto fatalregistry
  753.         endif
  754.  
  755.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  756.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  757.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  758.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  759.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  760.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  761.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  762.  
  763.         Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  764.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  765.             Debug-Output "ShellCode error."
  766.             goto ShellCodeError
  767.         endif
  768.  
  769.         set RegistryErrorIndex = $($R0)
  770.  
  771.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  772.             EndWait
  773.             Debug-Output "Registry error: add value list."
  774.             CloseRegKey $(KeyProduct)
  775.             CloseRegKey $(SoftNetRulesKey)
  776.             goto fatalregistry
  777.         endif
  778.  
  779.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  780.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  781.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  782.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  783.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  784.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  785.  
  786.         Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  787.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  788.             Debug-Output "ShellCode error."
  789.             goto ShellCodeError
  790.         endif
  791.  
  792.         set RegistryErrorIndex = $($R0)
  793.  
  794.         CloseRegKey $(KeyProduct)
  795.         CloseRegKey $(SoftNetRulesKey)
  796.  
  797.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  798.             EndWait
  799.             Debug-Output "Resgitry error: add value list."
  800.             goto fatalregistry
  801.         endif
  802.     endif
  803. ;
  804. ;   Create the HARDWARE\Netcard region and its corresponding service
  805. ;
  806.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  807.  
  808.     ifint $($R4) != -1
  809.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  810.     endif
  811.  
  812.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  813.         Debug-Output "Cannot add hardware component"
  814.         goto ShellCodeError
  815.     endif
  816.  
  817.     set RegistryErrorIndex = $($R0)
  818.  
  819.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  820.         EndWait
  821.         Debug-Output "Registry error: add hardware component"
  822.         CloseRegKey $($R1)
  823.         CloseRegKey $($R2)
  824.         CloseRegKey $($R3)
  825.         goto fatalregistry
  826.     endif
  827.  
  828. ;
  829. ;   At this point:
  830. ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  831. ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  832. ;     $R3  Registry key handle for <service>\Parameters key
  833. ;     $R4  Adapter number assigned to adapter
  834. ;     $R5  Service name generated by combining svc name with adapter number
  835. ;
  836.     set KeyParameters = $($R3)
  837.     set KeyAdapterRules = $($R2)
  838.     set AdapterNumber = $($R4)
  839.  
  840.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  841.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
  842.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  843.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  844.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  845.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  846.  
  847.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  848.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  849.         Debug-Output "ShellCode error"
  850.         goto ShellCodeError
  851.     endif
  852.  
  853.     CloseRegKey $($R1)
  854.  
  855.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  856.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  857.  
  858.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  859.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  860.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  861.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  862.  
  863.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  864.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  865.         Debug-Output "ShellCode error."
  866.         goto ShellCodeError
  867.     endif
  868.  
  869.     set RegistryErrorIndex = $($R0)
  870.  
  871.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  872.         EndWait
  873.         Debug-Output "Resgitry error: add value list."
  874.         CloseRegKey $(KeyParameters)
  875.         CloseRegKey $(KeyAdapterRules)
  876.         goto fatalregistry
  877.     endif
  878.  
  879.     CloseRegKey $(KeyAdapterRules)
  880.  
  881.     goto writeparameters
  882. ;
  883. ;   REQUIRED:   $(KeyParameters) contains service Parameters key handle
  884. ;
  885. writeparameters = +
  886.     Shell $(UtilityInf), GetBusTypeNum
  887.     set BusTypeNum = $($R1)
  888.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  889.         Debug-Output "ShellCode error."
  890.         goto ShellCodeError
  891.     endif
  892. ;
  893. ;   Add the rest of the parameters to the Services area
  894. ;
  895.  
  896.  
  897.     ifstr(i) $(EarlyTransmitValue) == "ON"
  898.         set EarlyTransmitValue =  "1"
  899.     else
  900.         set EarlyTransmitValue =  "0"
  901.     endif
  902.  
  903.     ifstr(i) $(LinkIntegrityValue) == "ON"
  904.         set LinkIntegrityValue =  "1"
  905.     else
  906.         set LinkIntegrityValue =  "0"
  907.     endif
  908.  
  909.     ifstr(i) $(FullDuplexValue) == "ON"
  910.         set FullDuplexValue =  "1"
  911.     else
  912.         set FullDuplexValue =  "0"
  913.     endif
  914.  
  915.     set ModeValue                    = *($(ModeValues),        ~($(ModeList),          $(ModeIndex)))
  916.     set MemoryAddrValue              = *($(MemoryAddrValues),~($(MemoryAddrList), $(MemoryAddrIndex)))
  917.     set-add CommonMemoryAddrValue    = $(MemoryAddrValue),    4096
  918.     set IRQValue                     = *($(IRQValues),        ~($(IRQList),        $(IRQValueIndex)))
  919.     set IOBaseAddrValue              = *($(IOBaseAddrValues),~($(IOBaseAddrList), $(IOBaseAddrIndex)))
  920.     set CableTypeValue              = *($(CableTypeValues),    ~($(CableTypeList),     $(CableTypeIndex)))
  921.     set IOLengthValue                = 15
  922.     set NewValueList     = {{IoBaseAddress,           $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  923.                                {IoLength,                  $(NoTitle),$(!REG_VT_DWORD), 15},+
  924.                                {PCCARDAttributeMemoryAddress, $(NoTitle),$(!REG_VT_DWORD),$(MemoryAddrValue)},+
  925.                                {PCCARDAttributeMemorySize, $(NoTitle),$(!REG_VT_DWORD),4096},+
  926.                                {PCCARDAttributeMemoryOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  927.                                {MemoryMappedBaseAddress, $(NoTitle),$(!REG_VT_DWORD),$(CommonMemoryAddrValue)},+
  928.                                {MemoryMappedSize,        $(NoTitle),$(!REG_VT_DWORD),4096},+
  929.                                {PCCARDMemoryWindowOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  930.                                {InterruptNumber,         $(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  931.                             {ResourceManager,            $(NoTitle),$(!REG_VT_SZ),TRUE},+
  932.                             {FullDuplex,                 $(NoTitle),$(!REG_VT_DWORD),$(FullDuplexValue)},+
  933.                             {CableType,               $(NoTitle),$(!REG_VT_DWORD),$(CableTypeValue)},+
  934.                             {LinkIntegrity,           $(NoTitle),$(!REG_VT_DWORD),$(LinkIntegrityValue)},+
  935.                             {EarlyTransmit,           $(NoTitle),$(!REG_VT_DWORD),$(EarlyTransmitValue)},+
  936.                             {FullDuplex,              $(NoTitle),$(!REG_VT_DWORD),$(FullDuplexValue)},+
  937.                             {Mode,                     $(NoTitle),$(!REG_VT_DWORD),$(ModeValue)},+
  938.                             {MediaType,               $(NoTitle),$(!REG_VT_DWORD),1},+
  939.                             {BusType,                 $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  940.                             {BusNumber,               $(NoTitle),$(!REG_VT_DWORD),0},+
  941.                             {ResourceManager,         $(NoTitle),$(!REG_VT_DWORD),$(ENABLER)},+
  942.                             {PCMCIA,                  $(NoTitle),$(!REG_VT_DWORD),1}}
  943.  
  944.  
  945.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  946.     CloseRegKey $(KeyParameters)
  947.  
  948.     ; --------------------------------------------------------------------------------
  949.     ; Reprogram the PCMCIA slot with the new parameters
  950.     ; Should only be done during first time installation of NT, and if Xircom card was found
  951.     ; --------------------------------------------------------------------------------
  952.     ; Call out to the PCMCIA driver only if we're loading a PCMCIA device
  953.     ifint $(RUNDLLCODE) == 1
  954.         ifint $(PCMCIA) == 1
  955.             ifint $(ENABLER) == 1
  956.                 ifint $(HOTPROGRAMPCMCIA) == 1
  957.                     ifint $(SLOTFOUND) == 1            ; and a Xircom card was found in a slot
  958.                         LoadLibrary "disk 1" $(DialogDllName) hLib
  959.                         Debug-Output "Enabling network resources"
  960.                         ifstr(i) $(Option) == CM2NDIS3
  961.                             LibraryProcedure STATUS, $(hLib), SetupSlot $(SLOT) 0 $(IRQValue) $(IOBaseAddrValue) $(IOLengthValue) $(MemoryAddrValue) 4096 0
  962.                         else
  963.                             LibraryProcedure STATUS, $(hLib), SetupSlot $(SLOT) $(IRQValue) 0 $(IOBaseAddrValue) $(IOLengthValue) $(MemoryAddrValue) 4096 0
  964.                         endif
  965.                         Debug-Output "SetupSlot: "$(STATUS)
  966.                         FreeLibrary $(hLib)
  967.                     endif
  968.                 endif
  969.             endif
  970.         endif
  971.     endif
  972.  
  973.  
  974.     
  975.     ; --------------------------------------------------------------------------------
  976.     ; Write the parameters to the PCMCIA database section, iff running MS Enabler
  977.     ; Add/replace only the parts for the CE2
  978.     ; --------------------------------------------------------------------------------
  979.     set PCMCIADatabaseKeyName = $(!NTN_ServiceBase)"\Pcmcia\DataBase"
  980.     set PCMCIADatabaseXircomKeyName = $(PCMCIADatabaseKeyName)"\Xircom"
  981. ;    Debug-Output "Opening PCMICA database key "$(PCMCIADatabaseKeyName)
  982.     OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseKey
  983.  
  984.     ifstr $(PCMCIADatabaseKey) == $(NULL)
  985.         ;Debug-Output "Pcmcia\DataBase not present"
  986.     else ; PCMCIA.sys is installed and registry has database section in it.
  987.         ; Try to open Xircom section.  Delete it if found
  988.         OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName)"\Xircom" $(MAXIMUM_ALLOWED) PCMCIADatabaseXircomKey
  989.         ifstr $(PCMCIADatabaseXircomKey) == $(NULL) ; open failed, so create Xircom subkey
  990.             CreateRegKey $(PCMCIADatabaseKey) {"Xircom", 0, 0} "" $(MAXIMUM_ALLOWED) "" PCMCIADatabaseXircomKey
  991.         endif
  992.  
  993.         ; Open "CreditCard 10Base-T"  aka $(VERS1Product) ----------------------------------------------------------------------
  994.         OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseXircomKeyName)"\"$(VERS1Product) $(MAXIMUM_ALLOWED) PCMCIADatabaseXircomCE2Key
  995.         ifstr $(PCMCIADatabaseXircomCE2Key) == $(NULL)
  996.             CreateRegKey $(PCMCIADatabaseXircomKey) {$(VERS1Product), 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCE2Key
  997.         endif
  998.  
  999.         ; DON"T Remove previous instances of CE2s -------------------------
  1000.         ;DeleteRegTree $(PCMCIADatabaseXircomCE2Key) "9F5B"
  1001.         ;DeleteRegTree $(PCMCIADatabaseXircomCE2Key) "5331"
  1002.         ;DeleteRegTree $(PCMCIADatabaseXircomCE2Key) "64BA"
  1003.  
  1004.         ; Xircom CE IIps ------------------
  1005.         CreateRegKey $(PCMCIADatabaseXircomCE2Key)    {"9F5B", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCE2CRCKey
  1006.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {Driver, 0, $(!REG_VT_SZ),"ce2xps"}
  1007.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {AttributeMemorySize, 0, $(!REG_VT_DWORD),4096}
  1008.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {DeviceType, 0, $(!REG_VT_SZ),"NET"}
  1009.         CloseRegKey  $(PCMCIADatabaseXircomCE2CRCKey)
  1010.         ; Xircom CE IIps ------------------
  1011.         CreateRegKey $(PCMCIADatabaseXircomCE2Key)    {"5331", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCE2CRCKey
  1012.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {Driver, 0, $(!REG_VT_SZ),"ce2xps"}
  1013.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {AttributeMemorySize, 0, $(!REG_VT_DWORD),4096}
  1014.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {DeviceType, 0, $(!REG_VT_SZ),"NET"}
  1015.         CloseRegKey  $(PCMCIADatabaseXircomCE2CRCKey)
  1016.         ; Xircom CE IIps ------------------
  1017.         CreateRegKey $(PCMCIADatabaseXircomCE2Key)    {"64BA", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCE2CRCKey
  1018.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {Driver, 0, $(!REG_VT_SZ),"ce2xps"}
  1019.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {AttributeMemorySize, 0, $(!REG_VT_DWORD),4096}
  1020.         SetRegValue  $(PCMCIADatabaseXircomCE2CRCKey) {DeviceType, 0, $(!REG_VT_SZ),"NET"}
  1021.         CloseRegKey  $(PCMCIADatabaseXircomCE2CRCKey)
  1022.  
  1023.         CloseRegKey  $(PCMCIADatabaseXircomCE2Key)
  1024.         CloseRegKey  $(PCMCIADatabaseXircomKey)
  1025.         CloseRegKey  $(PCMCIADatabaseKey)
  1026.     endif
  1027.  
  1028.  
  1029.  
  1030.     ; --------------------------------------------------------------------------------
  1031.     ; --------------------------------------------------------------------------------
  1032.  
  1033.  
  1034.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1035.         Debug-Output "ShellCode error."
  1036.         goto ShellCodeError
  1037.     endif
  1038.  
  1039.     set RegistryErrorIndex = $($R0)
  1040.  
  1041.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1042.         Debug-Output "Registry error: Add value list"
  1043.         goto fatalregistry
  1044.     endif
  1045.  
  1046.     EndWait
  1047.  
  1048.     goto successful
  1049.  
  1050. ;-----------------------------------------------
  1051. ; Binding section
  1052. ;-----------------------------------------------
  1053. bindingadapter =+
  1054.     set Error = "Binding: Sorry, not yet implemented."
  1055.     goto fatal
  1056.  
  1057. ;-----------------------------------------------
  1058. ; Removeadapter section
  1059. ;-----------------------------------------------
  1060.  
  1061. removeadapter = +
  1062.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1063.         ; Remove Software Component
  1064.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1065.             $(ProductSoftwareName)
  1066.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1067.             Debug-Output "ShellCode error"
  1068.             goto ShellCodeError
  1069.         endif
  1070.  
  1071.         set RegistryErrorIndex = $($R0)
  1072.  
  1073.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1074.             goto fatalregistry
  1075.         endif
  1076.     else
  1077.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1078.             $(ProductSoftwareName), $(!NTN_RegBase)
  1079.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1080.             Debug-Output "ShellCode error"
  1081.             goto ShellCodeError
  1082.         endif
  1083.  
  1084.         set RegistryErrorIndex = $($R0)
  1085.  
  1086.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1087.             goto fatalregistry
  1088.         endif
  1089.  
  1090.  
  1091.     endif
  1092.  
  1093.     goto end
  1094.  
  1095. ;-----------------------------------------------
  1096. ; Upgrade Software section
  1097. ;-----------------------------------------------
  1098.  
  1099. UpgradeSoftware = +
  1100.     ;
  1101.     ; First determine whether we want to do upgrade or update for software
  1102.     ; or hardware component. Then we will determine whether the Mode is
  1103.     ; update or upgrade.
  1104.     ;
  1105.     ; If the same version of the product existed in the registry, we do
  1106.     ; update. Otherwise, we will do a upgrade
  1107.     ;
  1108.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1109.         ; Upgrade software component
  1110.         ;
  1111.         ; see whether the same version exist or not
  1112.         ;
  1113.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  1114.  
  1115.         Ifstr $(KeyProduct) != $(KeyNull)
  1116.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  1117.             set Version = *($(VersionInfo), 4)
  1118.  
  1119.             ;
  1120.             ; Update the binaries
  1121.             ;
  1122.             Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  1123.  
  1124.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1125.                 Debug-Output "ShellCode error"
  1126.                 goto ShellCodeError
  1127.             endif
  1128.  
  1129.             set !UG_Filename = $($R0)
  1130.  
  1131.             ifstr(i) $(!UG_Filename) != ""
  1132.                 install "Install-Update"
  1133.                 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1134.                     goto fatal
  1135.                 endif
  1136.             endif
  1137.  
  1138.             ; Upgrade the version number
  1139.             ;
  1140.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  1141.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  1142.  
  1143.             ;
  1144.             ; do nothing for update
  1145.             ;
  1146.             ifint $(Version) != $(ProductVersion)
  1147.                ;
  1148.                ; If the major version number is not the same,
  1149.                ; it is major upgrade. So let Upgrade the product
  1150.                ;
  1151.                ;
  1152.                ; make other upgrade change if necessary
  1153.                ;
  1154.             endif
  1155.             CloseRegKey $(KeyProduct)
  1156.         else
  1157.             ;
  1158.             ; Cannot Open software key, goto ERROR
  1159.             ;
  1160.             goto fatalregistry
  1161.         endif
  1162.     else
  1163.         ;
  1164.         ; upgrade/update hardware component
  1165.         ; There is no different between upgrade and update for hardware
  1166.         ; component
  1167.         ;
  1168.         ; 1. Get the Service Name
  1169.         ; 2. Change the NetRule section if necessary
  1170.         ;
  1171.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  1172.               $(MAXIMUM_ALLOWED) NetworkCardKey
  1173.         Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  1174.             ;
  1175.             ; Get Service name
  1176.             ;
  1177.             GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  1178.             set ServiceName = *($(ServiceNameInfo), 4)
  1179.  
  1180.             ;
  1181.             ; Change the NetRule if necessary
  1182.             ;
  1183.             OpenRegKey $(NetworkCardKey) "" "NetRules" +
  1184.                 $(MAXIMUM_ALLOWED) NetRuleKey
  1185.             Ifstr(i) $(NetRuleKey) != $(KeyNull)
  1186.                 ;
  1187.                 ; Make the change....
  1188.                 ;
  1189.             else
  1190.                 ;
  1191.                 ; Error, cannot open net rules key
  1192.                 ;
  1193.                 goto fatalregistry
  1194.             endif
  1195.  
  1196.             CloseRegKey $(NetRules)
  1197.             CloseRegKey $(NetworkCardKey)
  1198.         else
  1199.             ;
  1200.             ; Error, cannot open network card key
  1201.             ;
  1202.             goto fatalregistry
  1203.         endif
  1204.         ;
  1205.         ; 3. Change the service section of the hardware. i.e.,
  1206.         ;    ParameterName change, value change, etc.
  1207.         ;
  1208.         OpenRegKey $(!REG_H_LOCAL) "" +
  1209.               $(!NTN_ServiceBase)"\"$(ServiceName) +
  1210.               $(MAXIMUM_ALLOWED) ServiceKey
  1211.  
  1212.         Ifstr(i) $(ServiceKey) != $(KeyNull)
  1213.             ;
  1214.             ; Get the ServiceKey to change the Start value
  1215.             ; or Type value. Or open Parameters key to
  1216.             ; change the hardware parameters if necessary.
  1217.             ;
  1218.             CloseRegKey $(ServiceKey)
  1219.         else
  1220.             ;
  1221.             ; Error, cannot open network card key
  1222.             ;
  1223.             goto fatalregistry
  1224.         endif
  1225.     endif
  1226.  
  1227.     goto end
  1228.     ;
  1229.     ; End of Upgrade Software
  1230.     ;
  1231.  
  1232. ;
  1233. ;  Escape hatches
  1234. ;
  1235. successful = +
  1236.     goto end
  1237.  
  1238. abandon = +
  1239.     ForListDo $(OEM_ABANDON_OPTIONS)
  1240.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1241.             $(ProductSoftwareName), $($)
  1242.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1243.             Debug-Output "ShellCode error"
  1244.             goto ShellCodeError
  1245.         endif
  1246.  
  1247.         set RegistryErrorIndex = $($R0)
  1248.  
  1249.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1250.             goto fatalregistry
  1251.         endif
  1252.     EndForListDo
  1253.  
  1254.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1255.         ; Remove Software Component
  1256.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1257.             $(ProductSoftwareName), FALSE
  1258.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1259.             Debug-Output "ShellCode error"
  1260.             goto ShellCodeError
  1261.         endif
  1262.  
  1263.         set RegistryErrorIndex = $($R0)
  1264.  
  1265.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1266.             goto fatalregistry
  1267.         endif
  1268.     endif
  1269.  
  1270.     goto end
  1271.  
  1272. ;
  1273. ; warning display
  1274. ;
  1275. warning = +
  1276.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1277.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1278.         goto ShellCodeError
  1279.     endif
  1280.     ifstr(i) $($R1) == "OK"
  1281.         goto $(to)
  1282.     else-ifstr(i) $($R1) == "CANCEL"
  1283.         goto $(from)
  1284.     else
  1285.         goto "end"
  1286.     endif
  1287. ;
  1288. ; non fatal error display
  1289. ;
  1290. nonfatalinfo = +
  1291.     Set Severity = STATUS
  1292.     Set CommonStatus = STATUS_USERCANCEL
  1293.     goto nonfatalmsg
  1294. nonfatal = +
  1295.     Set Severity = NONFATAL
  1296.     goto nonfatalmsg
  1297. nonfatalmsg = +
  1298.     ifstr(i) $(Error) == ""
  1299.         Set Severity = NONFATAL
  1300.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1301.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1302.             goto ShellCodeError
  1303.         endif
  1304.         set Error = $($R0)
  1305.     endif
  1306.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1307.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1308.         goto ShellCodeError
  1309.     endif
  1310.     ifstr(i) $($R1) == "OK"
  1311.         goto $(from)
  1312.     else
  1313.         goto "end"
  1314.     endif
  1315.  
  1316. ;
  1317. ;  Registry is broken
  1318. ;
  1319. fatalregistry = +
  1320.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1321.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1322.         goto ShellCodeError
  1323.     endif
  1324.     set Error = $($R0)
  1325.     goto fatal
  1326. ;
  1327. ;  Netcard detection failure
  1328. ;
  1329. fataldetect = +
  1330.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  1331.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1332.         Debug-Output "ShellCode error: cannot get an error string."
  1333.         goto ShellCodeError
  1334.     endif
  1335.     set Error = $($R0)
  1336.     Goto fatal
  1337. ;
  1338. ; fatal error display
  1339. ;
  1340. fatal = +
  1341.     ifstr(i) $(Error) == ""
  1342.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1343.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1344.             goto ShellCodeError
  1345.         endif
  1346.         set Error = $($R0)
  1347.     endif
  1348.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1349.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1350.         goto ShellCodeError
  1351.     endif
  1352.  
  1353.     goto setfailed
  1354.  
  1355. ;
  1356. ;  Shelling error
  1357. ;
  1358. ShellCodeError = +
  1359.     set DlgType      = "MessageBox"
  1360.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  1361.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  1362.     set STF_MB_TYPE  = 1
  1363.     set STF_MB_ICON  = 3
  1364.     set STF_MB_DEF   = 1
  1365.     ui start "Error Message"
  1366.     goto setfailed
  1367.  
  1368. setfailed = +
  1369.     set CommonStatus = STATUS_FAILED
  1370.     ;
  1371.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1372.     ;
  1373.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1374.         set OEM_ABANDON_ON = FALSE
  1375.         goto abandon
  1376.     endif
  1377.     goto end
  1378.  
  1379. end = +
  1380.     goto term
  1381.  
  1382. term = +
  1383.  
  1384.     Return $(CommonStatus)
  1385.  
  1386. [DebugConfiguration]
  1387.  
  1388.     Set InfName = "OEMSETUP.INF"
  1389.     ;Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
  1390.     ;Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
  1391.     ;Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
  1392.     ;Debug-Output $(InfName)" TransceiverValue is "$(!p:TransceiverValue)
  1393.     ;Debug-Output $(InfName)" MemoryAddr is "$(!p:MemoryAddr)
  1394.     ;Debug-Output $(InfName)" MappedValue is "$(!p:MappedValue)
  1395.  
  1396.     return
  1397.  
  1398.  
  1399. ;***************************************************************
  1400. ;  INSTALL SECTIONS
  1401. ;***************************************************************
  1402. [Install-Option]
  1403.     set STF_VITAL = ""
  1404.  
  1405.     ifstr(i) $(AddCopy) == "YES"
  1406.  
  1407.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1408.  
  1409.     endif
  1410.  
  1411.     ifstr(i) $(DoCopy) == "YES"
  1412.  
  1413.        ;
  1414.        ; Copy files in the copy list
  1415.        ;
  1416.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1417.        CopyFilesInCopyList
  1418.  
  1419.     endif
  1420.  
  1421.     Exit
  1422.  
  1423. [Install-Update]
  1424.    set STF_VITAL        = ""
  1425.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1426.    ;set STF_VERSION     = "YES"
  1427.  
  1428.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1429.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1430.  
  1431.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1432.    CopyFilesInCopyList
  1433.  
  1434.    exit
  1435.  
  1436.  
  1437. [Install-Dll]
  1438.    set STF_VITAL     = ""
  1439.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1440.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1441.    CopyFilesInCopyList
  1442.    exit
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448. [Source Media Descriptions]
  1449.     1  = "Xircom Setup Disk for NT"
  1450.  
  1451. [Signature]
  1452.     FileType = MICROSOFT_DRVLIB_FILE
  1453. [GetSignature]
  1454.     read-syms Signature
  1455.     return $(FileType)
  1456.  
  1457. [ProductType]
  1458. STF_PRODUCT  = Winnt
  1459. STF_PLATFORM = I386
  1460.  
  1461.  
  1462. [Files-Inf]
  1463. 1, OEMSETUP.INF, SIZE=58000,    RENAME=$(!UG_Filename)
  1464.  
  1465. [Files-Dll]
  1466. 1, CE2XPS.DLL,  SIZE=21000
  1467.  
  1468. [Files-CE2XPS]
  1469. 1, CE2XPS.SYS, SIZE=53000
  1470.  
  1471. [LanguagesSupported]
  1472.     ENG
  1473.  
  1474. [AllFileConstantsENG]
  1475. ProCaption   = "Windows NT Setup"
  1476. ProCancel    = "Cancel"
  1477. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1478.                "Are you sure you want to cancel copying files?"
  1479. ProCancelCap = "Network Setup Message"
  1480. ProText1     = "Copying:"
  1481. ProText2     = "To:"
  1482. DialogDllName     = "CE2XPS.DLL"
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489. ; START CE/2 -------------------------------------------------------------------------------------------
  1490.  
  1491. [FileConstantsENG-CE2XPS]
  1492. FunctionTitle           = $(GenericAdapterName)" Setup"$(GenericInfVersion)
  1493. ProductSoftwareTitle    = $(GenericDriverName)
  1494. ProductHardwareTitle    = $(GenericAdapterName)
  1495. IRQList                   = ^(IRQChoices, 1)
  1496. IRQValues                 = ^(IRQChoices, 2)
  1497. IOBaseAddrList            = ^(IOBaseAddrChoices, 1)
  1498. IOBaseAddrValues          = ^(IOBaseAddrChoices, 2)
  1499. MemoryAddrList            = ^(MemoryAddrChoices,1)
  1500. MemoryAddrValues         = ^(MemoryAddrChoices,2)
  1501. CableTypeList             = ^(CableTypeChoices, 1)
  1502. CableTypeValues             = ^(CableTypeChoices, 2)
  1503. ModeList                 = ^(ModeChoices, 1)
  1504. ModeValues                 = ^(ModeChoices, 2)
  1505.  
  1506. [DialogConstantsENG-CE2XPS]
  1507. Help        = "&Help"
  1508. Exit        = "Cancel"
  1509. OK          = "OK"
  1510. HelpContext = ""
  1511. Continue    = "Continue"
  1512. Cancel      = "Cancel"
  1513.  
  1514. [FileDependentDlgENG-CE2XPS]
  1515. DlgType = "RadioCombination"
  1516. DlgTemplate = "CE2"
  1517. Caption = $(FunctionTitle)
  1518. HelpContext = $(!IDH_DB_OEMNADE2_INS)
  1519. CBOptionsGreyed = {}
  1520. NotifyFields = {NO, NO, NO, NO, NO, NO, NO, NO}
  1521. Combo1Label = "I/&O Port:"
  1522. Combo2Label = "&Memory Address:"
  1523. Combo3Label = "&Interrupt:"
  1524. Combo4Label = "Mo&de:"
  1525. Combo5Label = "&Cable Type:"
  1526. Check1 = "&Early Transmit"
  1527. Check2 = "&Link Integrity"
  1528. Check3 = "&Full Duplex"
  1529. Combo1List = $(IOBaseAddrList)
  1530. Combo1Out  = $(IOBaseAddrValue)
  1531. Combo2List = $(MemoryAddrList)
  1532. Combo2Out  = $(MemoryAddrValue)
  1533. Combo3List = $(IRQList)
  1534. Combo3Out  = $(IRQValue)
  1535. Combo4List = $(ModeList)
  1536. Combo4Out  = $(ModeValue)
  1537. Combo5List = $(CableTypeList)
  1538. Combo5Out  = $(CableTypeValue)
  1539. ComboListItemsIn  = {Combo1List,Combo2List,Combo3List, Combo4List, Combo5List}
  1540. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out}
  1541.  
  1542. CheckItemsIn = {$(EarlyTransmitValue),$(LinkIntegrityValue),$(FullDuplexValue)}
  1543. CheckItemsOut = {Check1Out, Check2Out, Check3Out}
  1544. EditTextIn  = {"",""}
  1545. EditTextLim = {"",""}
  1546.  
  1547.  
  1548. ; END CE/2 -------------------------------------------------------------------------------------------
  1549.  
  1550.  
  1551. [MemoryAddrChoices]
  1552. MA_1  = "0xA0000", 655360
  1553. MA_2  = "0xA1000", 659456
  1554. MA_3  = "0xA2000", 663552
  1555. MA_4  = "0xA3000", 667648
  1556. MA_5  = "0xA4000", 671744
  1557. MA_6  = "0xA5000", 675840
  1558. MA_7  = "0xA6000", 679936
  1559. MA_8  = "0xA7000", 684032
  1560. MA_9  = "0xA8000", 688128
  1561. MA_10 = "0xA9000", 692224
  1562. MA_11 = "0xAA000", 696320
  1563. MA_12 = "0xAB000", 700416
  1564. MA_13 = "0xAC000", 704512
  1565. MA_14 = "0xAD000", 708608
  1566. MA_15 = "0xAE000", 712704
  1567. MA_16 = "0xAF000", 716800
  1568. MA_17 = "0xB0000", 720896
  1569. MA_18 = "0xB1000", 724992
  1570. MA_19 = "0xB2000", 729088
  1571. MA_20 = "0xB3000", 733184
  1572. MA_21 = "0xB4000", 737280
  1573. MA_22 = "0xB5000", 741376
  1574. MA_23 = "0xB6000", 745472
  1575. MA_24 = "0xB7000", 749568
  1576. MA_25 = "0xB8000", 753664
  1577. MA_26 = "0xB9000", 757760
  1578. MA_27 = "0xBA000", 761856
  1579. MA_28 = "0xBB000", 765952
  1580. MA_29 = "0xBC000", 770048
  1581. MA_30 = "0xBD000", 774144
  1582. MA_31 = "0xBE000", 778240
  1583. MA_32 = "0xBF000", 782336
  1584. MA_33 = "0xC0000", 786432
  1585. MA_34 = "0xC1000", 790528
  1586. MA_35 = "0xC2000", 794624
  1587. MA_36 = "0xC3000", 798720
  1588. MA_37 = "0xC4000", 802816
  1589. MA_38 = "0xC5000", 806912
  1590. MA_39 = "0xC6000", 811008
  1591. MA_40 = "0xC7000", 815104
  1592. MA_41 = "0xC8000", 819200
  1593. MA_42 = "0xC9000", 823296
  1594. MA_43 = "0xCA000", 827392
  1595. MA_44 = "0xCB000", 831488
  1596. MA_45 = "0xCC000", 835584
  1597. MA_46 = "0xCD000", 839680
  1598. MA_47 = "0xCE000", 843776
  1599. MA_48 = "0xCF000", 847872
  1600. MA_49 = "0xD0000", 851968
  1601. MA_50 = "0xD1000", 856064
  1602. MA_51 = "0xD2000", 860160
  1603. MA_52 = "0xD3000", 864256
  1604. MA_53 = "0xD4000", 868352
  1605. MA_54 = "0xD5000", 872448
  1606. MA_55 = "0xD6000", 876544
  1607. MA_56 = "0xD7000", 880640
  1608. MA_57 = "0xD8000", 884736
  1609. MA_58 = "0xD9000", 888832
  1610. MA_59 = "0xDA000", 892928
  1611. MA_60 = "0xDB000", 897024
  1612. MA_61 = "0xDC000", 901120
  1613. MA_62 = "0xDD000", 905216
  1614. MA_63 = "0xDE000", 909312
  1615. MA_64 = "0xDF000", 913408
  1616. MA_65 = "0xE0000", 917504
  1617. MA_66 = "0xE1000", 921600
  1618. MA_67 = "0xE2000", 925696
  1619. MA_68 = "0xE3000", 929792
  1620. MA_69 = "0xE4000", 933888
  1621. MA_70 = "0xE5000", 937984
  1622. MA_71 = "0xE6000", 942080
  1623. MA_72 = "0xE7000", 946176
  1624. MA_73 = "0xE8000", 950272
  1625. MA_74 = "0xE9000", 954368
  1626. MA_75 = "0xEA000", 958464
  1627. MA_76 = "0xEB000", 962560
  1628. MA_77 = "0xEC000", 966656
  1629. MA_78 = "0xED000", 970752
  1630. MA_79 = "0xEE000", 974848
  1631. MA_80 = "0xEF000", 978944
  1632. MA_81 = "0xF0000", 983040
  1633. MA_82 = "0xF1000", 987136
  1634. MA_83 = "0xF2000", 991232
  1635. MA_84 = "0xF3000", 995328
  1636. MA_85 = "0xF4000", 999424
  1637. MA_86 = "0xF5000", 1003520
  1638. MA_87 = "0xF6000", 1007616
  1639. MA_88 = "0xF7000", 1011712
  1640. MA_89 = "0xF8000", 1015808
  1641. MA_90 = "0xF9000", 1019904
  1642. MA_91 = "0xFA000", 1024000
  1643. MA_92 = "0xFB000", 1028096
  1644. MA_93 = "0xFC000", 1032192
  1645. MA_94 = "0xFD000", 1036288
  1646. MA_95 = "0xFE000", 1040384
  1647.  
  1648. [IRQChoices]
  1649. ;Interrupts available on the PCIC: { 3,4,5,7,8,10,11,12,14,15 }
  1650. ;Interrupts available on the TCIC: { 3,4,5,6,7,10,14 }
  1651. ;14 = fixed disk
  1652. ;12 = keyboard
  1653. ;6  = floppy disk
  1654. ;union(PCIC, TCIC) - {14} = 3,4,5,7,10
  1655. IRQ_1 = "3",3
  1656. IRQ_2 = "4",4
  1657. IRQ_3 = "5",5
  1658. IRQ_4 = "7",7
  1659. IRQ_5 = "10",10
  1660. IRQ_6 = "11",11
  1661. IRQ_7 = "15",15
  1662.  
  1663. [ModeChoices]
  1664. MO_1 = "Shared Memory", 0
  1665. MO_2 = "I/O Mode", 1
  1666.  
  1667. [CableTypeChoices]
  1668. CT_1 = "Auto Detect", 0
  1669. CT_2 = "Twisted Pair (10bT)", 1
  1670. CT_3 = "Thin Net (10b2 COAX)", 2
  1671.  
  1672. [IOBaseAddrChoices]
  1673. ; 0x3E0 is where PCIC is located
  1674. ; 0x240 is where TCIC is located
  1675. ; therefore user cannot select these for locating the ethernet adapter
  1676. IOBase_1  = "0x200",512
  1677. IOBase_2  = "0x210",528
  1678. IOBase_3  = "0x220",544
  1679. IOBase_4  = "0x230",560
  1680. ;IOBase_5  = "0x240",576
  1681. IOBase_6  = "0x250",592
  1682. IOBase_7  = "0x260",608
  1683. IOBase_8  = "0x270",624
  1684. IOBase_9  = "0x280",640
  1685. IOBase_10 = "0x290",656
  1686. IOBase_11 = "0x2A0",672
  1687. IOBase_12 = "0x2B0",698
  1688. IOBase_13 = "0x2C0",714
  1689. IOBase_14 = "0x2D0",730
  1690. IOBase_15 = "0x2E0",746
  1691. IOBase_16 = "0x2F0",752
  1692. IOBase_17 = "0x300",768
  1693. IOBase_18 = "0x310",784
  1694. IOBase_19 = "0x320",800
  1695. IOBase_20 = "0x330",816
  1696. IOBase_21 = "0x340",832
  1697. IOBase_22 = "0x350",848
  1698. IOBase_23 = "0x360",864
  1699. IOBase_24 = "0x370",880
  1700. IOBase_25 = "0x380",896
  1701. IOBase_26 = "0x390",912
  1702. IOBase_27 = "0x3A0",928
  1703. IOBase_28 = "0x3B0",944
  1704. IOBase_29 = "0x3C0",960
  1705. IOBase_30 = "0x3D0",976
  1706.  
  1707.